1. Field of the Invention
The present invention relates to a method for updating software on a timely basis.
2. Description of Related Art
This invention is concerned with the problem of updating software installed on a large number of computers having different configurations. Software may be changed in order to provide additional features, fix problems (bugs) in earlier releases of the software, improve security, or for other reasons. Immediate installation of some software updates may be critical for proper operation of the software or to improve security of the software. The installation of other software updates may be optional or even irrelevant, depending on the configuration of the computer.
Whether the installation of a software update is critical depends partly upon information known to the software publisher (the purpose of the update) and partly upon information relating to the configuration of the computer, including such things as the computer hardware installed, the operating system in use, other software installed, etc. For example, an update to software A may be essential to fix interoperability problems between software A and software B, but many, or most computers may not have software B installed. In this case, installation of the update to software A would be relatively unimportant for the majority of users.
Although the intended effect of installing an update is known, the installation of an update may have unintended and undesirable effects. It is not possible to test software changes on all possible computer configurations. Occasionally, updates will introduce bugs or cause unexpected program behavior. Consequently, many users want to control the installation of updates and avoid the installation of non-critical updates.
These considerations make the timely installation of critical updates difficult. Once an update is written, its availability must be communicated to the end user and a decision must be made as to whether the update should be installed. The historical approach has been to notify users of the availability of a software update and allow them to obtain and install it if they decide it is necessary. This approach has caused extended delays in obtaining wide distribution of updates, even when the updates are critical.
Another approach to this problem has been to use the Internet to automatically convey the availability of an update to the user by having the software poll a server to determine if an update is available. The polling may be automatic or performed manually at the instigation of the user. The downloading and installation of the software update may be automatic or performed only after approval of the user.
If the polling and installation of the software update is performed automatically, it ensures rapid distribution, but this procedure is objectionable to many users who do not want a working installation modified needlessly.
Another approach is to provide the user information about the criticality and relevance of the update to different computer configurations. The user is asked to manually install the update or authorize the installation before it proceeds. This approach slows the spread of critical updates. It also requires that the user be able to understand the importance of the update and understand the configuration of the computer to determine if the update is applicable to his computer configuration. If the user doesn't understand the relevance of the update to his configuration, he may postpone the installation, even where the update is critical.
Bearing in mind the problems and deficiencies of the prior art, it is therefore an object of the present invention to provide a method of updating computer software that provides for automatic installation of critical updates and manual installation of less critical updates.
It is another object of the present invention to provide a method of updating computer software that takes into account the configuration of the computer to determine the criticality of a software update.
A further object of the invention is to provide a method of updating computer software that allows a user to determine in advance which software updates will be automatically installed and which will not be automatically installed depending on the criticality of a software update.
Still other objects and advantages of the invention will in part be obvious and will in part be apparent from the specification.